package com.zzyl.nursing.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zzyl.common.annotation.Excel;
import com.zzyl.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 入住配置对象 check_in_config
 *
 * @author ruoyi
 * @date 2025-10-18
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "入住配置" )
public class CheckInConfig extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "主键ID" )
    private Long id;

    /**
     * 入住表ID
     */
    @Excel(name = "入住表ID" )
    @Schema(title = "入住表ID" )
    private Long checkInId;

    /**
     * 护理等级ID
     */
    @Excel(name = "护理等级ID" )
    @Schema(title = "护理等级ID" )
    private Long nursingLevelId;

    /**
     * 护理等级名称
     */
    @Excel(name = "护理等级名称" )
    @Schema(title = "护理等级名称" )
    private String nursingLevelName;

    /**
     * 费用开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @Excel(name = "费用开始时间" , width = 30, dateFormat = "yyyy-MM-dd" )
    @Schema(title = "费用开始时间" )
    private LocalDateTime feeStartDate;

    /**
     * 费用结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @Excel(name = "费用结束时间" , width = 30, dateFormat = "yyyy-MM-dd" )
    @Schema(title = "费用结束时间" )
    private LocalDateTime feeEndDate;

    /**
     * 押金（元）
     */
    @Excel(name = "押金" , readConverterExp = "元=" )
    @Schema(title = "押金（元）" )
    private BigDecimal deposit;

    /**
     * 护理费用（元/月）
     */
    @Excel(name = "护理费用" , readConverterExp = "元=/月" )
    @Schema(title = "护理费用（元/月）" )
    private BigDecimal nursingFee;

    /**
     * 床位费用（元/月）
     */
    @Excel(name = "床位费用" , readConverterExp = "元=/月" )
    @Schema(title = "床位费用（元/月）" )
    private BigDecimal bedFee;

    /**
     * 医保支付（元/月）
     */
    @Excel(name = "医保支付" , readConverterExp = "元=/月" )
    @Schema(title = "医保支付（元/月）" )
    private BigDecimal insurancePayment;

    /**
     * 政府补贴（元/月）
     */
    @Excel(name = "政府补贴" , readConverterExp = "元=/月" )
    @Schema(title = "政府补贴（元/月）" )
    private BigDecimal governmentSubsidy;

    /**
     * 其他费用（元/月）
     */
    @Excel(name = "其他费用" , readConverterExp = "元=/月" )
    @Schema(title = "其他费用（元/月）" )
    private BigDecimal otherFees;

    /**
     * 排序编号
     */
    @Excel(name = "排序编号" )
    @Schema(title = "排序编号" )
    private Long sortOrder;

}
